Computer systems coupled to a data communications network, such as the Internet, allow for the exchange of a wide variety of information between users of such computer systems. One popular use of computer networks, such as the Internet, allows users to operate client communications software, known as a web browser, to communicate with remote computer systems, known as web servers, in order to browse web pages on the World Wide Web. The World Wide Web is generally a collection of web server computer systems that each operates web server software that communicates using a number of different data communications protocols and data formats, to allow each user's browser to make web page requests to the web servers. In response to these web page requests, web servers obtain (e.g., from storage, or via dynamic generation) the requested web pages and serve those pages back to each user's web browser for viewing by the user.
A typical web page is written in a markup language, such as the Hypertext Markup Language (HTML), and includes a number of embedded objects referenced by respective Uniform Resource Locators (URLs) within the HTML of a web page. The web page itself is generally referenced by a URL, as well. When a user provides a URL to a web browser of a web page (either by clicking a hyperlink identifying the URL to that web page, or by typing in the URL of the web page), the web browser performs a detailed sequence of processing tasks to obtain that web page. As an example, if the URL of the web page identifies a domain name of a server computer system on the Internet, the web browser must first perform a Domain Name Service (DNS) lookup of the domain name to resolve this alphanumeric name into the Internet Protocol (IP) address of the web server on the Internet that can serve the web page referenced by the URL. Once this DNS lookup is complete, the web browser establishes a connection to the web server (e.g., a Transmission Control Protocol or TCP connection) and uses a Hypertext Transport Protocol (HTTP) to transmit a web page GET request over the connection to the web server. The HTTP GET request contains the URL of the web page to be served by the server. The web server receives this HTTP GET request, obtains or dynamically generates the web page, and returns the web page as HTML to the web browser in an HTTP response message over the connection.
As the web browser receives the HTML for the web page, the HTML of the web page may include many embedded URL's that define other objects within the web page to be obtained by web browser. As an example, a graphic or image embedded within the web page is typically referenced with an embedded URL that specifies a server, and location (i.e., filename and directory path) within the server of that graphic or image. As the web browser encounters objects such as embedded URL's within the web page, the web browser repeats the sequence of processing described above the URL for the web page in order to obtain each embedded object, this can include performing a DNS lookup of the domain name specified in the URL (if that domain name was not previously resolved), establishing a connection to a server, and initiating an HTTP get request to obtain the content associated with the embedded URL. Modern web pages often contain many embedded objects, and URLs, that reference these objects, often specify different server computer systems from which to obtain these objects. As a result, the process of obtaining the complete content associated with a single web page including all embedded objects involves significant processing and communications activities.
Sophisticated web server software systems allow a user to visit the web site using his or her browser in order to perform transactions within the web site such as purchasing goods or services. Other types of transactions might involve navigating through a sequence of web pages to obtain desired content, performing searches for user specified information, and so forth. Depending upon the purpose of the web site, a typical user transaction can involve a user visiting a number of pages and providing user input on those pages. The web server often uses input from one or more pages to produce successive web pages in a given transaction.
Many organizations such as corporations, universities and web-based businesses rely heavily on the ability of their web site to properly perform transactions without errors. Because of the importance of ensuring that such web sites are operating properly, software developers have produced a number of conventional tools to exercise and test a web site and measure the performance of that web site's ability to process user transactions correctly and efficiently.